package Bot

import (
	"fmt"
	"os"
	"os/exec"
	"runtime"
	"GoBox/src/TRSS"
	"GoBox/src/Scripts"
	"time"
)
const (
	Red = "\033[31m Error: "
	Green = "\033[32m Success:"
	Yellow = "\033[33m Warning:"
	Reset = "\033[0m"
)


var (
	GoBoxPath string
	FFMPEG_PATH string
    YunZaiPath string
    AlemonPath string
	NodePath string
)

//接收main.go传来的参数                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
func Init(goBoxPath,ffmpegPath,yunzaiPath, alemonPath,nodePath string) {
	GoBoxPath = goBoxPath
	FFMPEG_PATH = ffmpegPath
	YunZaiPath = yunzaiPath
	AlemonPath = alemonPath
	NodePath = nodePath
}
// init 初始化，赋值
func init() {
	Init(GoBoxPath, FFMPEG_PATH, YunZaiPath, AlemonPath, NodePath)
	Scripts.Init(FFMPEG_PATH,NodePath)
}

func Go_Box_menu() {
	var Go_Box_menu = `
	===========GOBOX工具箱===========
	  1.安装BOT机器人
	  2.关于GOBOX
	  -1. 检查更新
	  0.退出
	请输入菜单编号：`
	var choice int
	for {
		clearLog()
		fmt.Printf("\033[34m")
		fmt.Print(Go_Box_menu)
		// 测试打印获取的变量
		fmt.Scanln(&choice)
		switch choice {
		case 1:
			Scripts.RUN_main(GoBoxPath,"install.sh","")
			os.Exit(0)
		case 2:
			About()
		case -1:
			// -1. 检查更新
			UpdateGoBox()
		case 0:
			// 0.退出
			os.Exit(0)
		default:
			fmt.Println("输入错误，请重新输入")
		}

	}
}
//GoBox菜单切换，需要用户输入id进行切换，并且把配置文件bot_id 修改为对应的id，重启bot
func Go_Box_menu_switch() {
	var Go_Box_menu_switch = `
	===========GOBOX工具箱===========
	  1.柠檬崽
	  2.TRSS云崽
	  0.退出
	请输入菜单编号：`
	var choice int
	for {
		clearLog()
		fmt.Printf("\033[34m")
		fmt.Print(Go_Box_menu_switch)
		// 测试打印获取的变量
		fmt.Scanln(&choice)
		switch choice {
		case 1:
			// 1.柠檬崽
			fmt.Println("1.柠檬崽")
			//修改配置文件bot_id
			//重启bot
		case 2:
			// 2.TRSS云崽
			fmt.Println("2.TRSS云崽")
			//修改配置文件bot_id
			//重启bot
		case 0:
			// 0.退出
			os.Exit(0)
		default:
			fmt.Println("输入错误，请重新输入")
		}

	}
}
func  alemon_bot_menu() {
	var alemon_bot_menu = `
	===========柠檬崽工具箱===========
	  1.初始化/前台启动
	  2.QQ频道账号配置
	  3.修改/添加主人账号
	  4.后台启动/停止机器人
	  5.查看当前配置
	  7.查看当前日志
	  9.安装/重新安装
	  10.Python管理器
	  11.柠檬崽插件安装/卸载（欢迎提交）
	  12.常见问题修复
	  13.切换工具箱(配置默认)
	  13.关于
	  -1. 检查更新
	  0.退出
	请输入菜单编号：`
	var choice int
	for {
		clearLog()
		fmt.Printf("\033[34m")
		fmt.Print(alemon_bot_menu)
		fmt.Scanln(&choice)
		switch choice {
		case 1:
			// 1.初始化/前台启动
			fmt.Println("1.初始化/前台启动")
		case 2:
			// 2.QQ频道账号配置
			fmt.Println("2.QQ频道账号配置")
		case 0:
			// 0.退出
			os.Exit(0)
		default:
			fmt.Println("输入错误，请重新输入")
		}

	}
}
func TRSS_YunZai_menu() {
	var TRSS_YunZai_menu  = `
	============TRSS工具箱============
	  1.初始化/前台启动
	  2.QQ频道账号配置
	  3.修改/添加主人账号
	  4.后台启动/停止机器人
	  5.查看当前配置
	  6.查看当前日志
	  7.安装/重新安装
	  8.Python管理器
	  9.云崽插件安装/卸载（欢迎提交）
	  10.常见问题修复
	  11.切换工具箱(配置默认)
	  12.关于
	  -1. 检查更新
	  0.退出
	请输入菜单编号：`
	var choice int
	for {
		clearLog()
		fmt.Printf("\033[34m")
		fmt.Print(TRSS_YunZai_menu)
		fmt.Scanln(&choice)
		switch choice {
		case 1:
			// 1.初始化/前台启动
			fmt.Println("1.初始化/前台启动")
			//执行node app
			TRSS.TRSS_init(GoBoxPath,YunZaiPath, NodePath,FFMPEG_PATH)
		case 2:
			// 2.QQ频道账号配置
			fmt.Println("2.QQ频道账号配置")
			
			TRSS.TRSS_QQ_account_config(GoBoxPath,YunZaiPath)
		case 3:
			// 3.修改/添加主人账号
			TRSS.TRSS_master_modify(GoBoxPath,YunZaiPath)
		case 4:
			// 4.后台启动/停止机器人
			TRSS.TRSS_bot_start_stop(GoBoxPath,YunZaiPath, NodePath,FFMPEG_PATH)
		case 5:
			// 5.查看当前配置
			TRSS.TRSS_show_info(GoBoxPath,YunZaiPath)
		case 6:
			// 6.查看当前日志
			fmt.Println("6.查看当前日志")
			TRSS.TRSS_bot_log(GoBoxPath,YunZaiPath, NodePath,FFMPEG_PATH)
		case 7:
			// 7.安装/重新安装
			fmt.Println("7.安装/重新安装")
			Scripts.RUN_main(GoBoxPath,"install.sh","")
		case 8:
			// 8.Python管理器
			fmt.Println("8.Python管理器")
			Scripts.RUN_main(GoBoxPath,"python.sh","")
		case 9:
			// 9.云崽插件安装/卸载（欢迎提交）
			fmt.Println("9.云崽插件安装/卸载（欢迎提交）")
			TRSS.Plugins_main(YunZaiPath,GoBoxPath)
			
		case 10:
			// 10.常见问题修复
			fmt.Println("10.常见问题修复")
			Scripts.RUN_main(GoBoxPath,"repair.sh","")
		case 11:

			// 11.切换工具箱(配置默认)
			//黄色警告字体
			fmt.Println("\033[33m Warning：目前只适配TRSS云崽,请等待后续版本更新...\033[0m")
			time.Sleep(3 * time.Second)
		case 12:
			// 12.关于
			About()
		case -1:
			// -1. 检查更新
			//返回值空代表更新成功
			UpdateGoBox()
		case 0:
			// 0.退出
			os.Exit(0)
		default:
			fmt.Println("输入错误，请重新输入")
		}
	}
	

}



// 打印菜单，根据id去打印，假设id=1，就打印第一个菜单
func Menu(id int) {
	switch id {
	case 0:
		Go_Box_menu()
	case 1:
		clearLog()
		alemon_bot_menu()
	case 2:
		clearLog()
		TRSS_YunZai_menu()
	}
}

func clearLog() {
	var cmd *exec.Cmd
	if runtime.GOOS == "windows" {
		cmd = exec.Command("cmd", "/c", "cls")
	} else {
		cmd = exec.Command("clear")
	}
	cmd.Stdout = os.Stdout
	cmd.Run()
}

// 测试函数
func Test() {
	// 测试打印获取的变量
	fmt.Println("GoBoxPath:", GoBoxPath)
	fmt.Println("FFMPEG_PATH:", FFMPEG_PATH)
	fmt.Println("YunZaiPath:", YunZaiPath)
	fmt.Println("AlemonPath:", AlemonPath)
	fmt.Println("NodePath:", NodePath)
	//打印当前目录
	dir, err := os.Getwd()
    if err != nil {
        fmt.Println("获取当前目录失败：", err)
        return
    }
    fmt.Println("当前目录为：", dir)
}
//关于
